package com.example.theoretical_verification.collection;

import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;

import java.util.ArrayList;
import java.util.Collections;

public class MyArrayList {
    public static void main(String[] args) {
        ArrayList<Student02> list = new ArrayList<>();

        Student02 s = new Student02("E", 12);
        list.add(s);
        Student02 s1 = new Student02("B", 23);
        list.add(s1);
        Student02 s2 = new Student02("D", 25);
        list.add(s2);
        Student02 s3 = new Student02("A", 35);
        list.add(s3);
        Student02 s4 = new Student02("C", 15);
        list.add(s4);
        Student02 s5 = new Student02("A", 21);
        list.add(s5);
        System.out.println(list);

        Collections.sort(list);
        System.out.println(list);

        Collections.sort(list,Collections.reverseOrder());
        System.out.println(list);

        //第一次打印，是按照add的顺序，说明ArrayList是存取有序的。
        //第二次打印，是按照Student01实现的name、age升序的排序规则。这说明，Student02里面的compareTo是配置Collections.sort来用的。
        //第三次打印则没有按照则是按照sort的第二个参数Comparator来排的逆序。这说明sort的第二个参数比较器的优先级高于类内部的Comparable接口。
    }
}








